home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / bbsutils / bullunr.arj / BULLETIN.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-03-06  |  8KB  |  306 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  TINTEGER001(12,2)
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     String   STRING001
  25.     String   TSTRING002(12)
  26.     String   TSTRING003(12)
  27.  
  28. ;------------------------------------------------------------------------------
  29.  
  30.     INTEGER005 = 11
  31.     INTEGER003 = 0
  32.     INTEGER002 = 0
  33.     TINTEGER001(0, 0) = 7
  34.     TINTEGER001(0, 1) = 6
  35.     TINTEGER001(1, 0) = 7
  36.     TINTEGER001(1, 1) = 9
  37.     TINTEGER001(2, 0) = 7
  38.     TINTEGER001(2, 1) = 12
  39.     TINTEGER001(3, 0) = 7
  40.     TINTEGER001(3, 1) = 15
  41.     TINTEGER001(4, 0) = 7
  42.     TINTEGER001(4, 1) = 18
  43.     TINTEGER001(5, 0) = 7
  44.     TINTEGER001(5, 1) = 21
  45.     TINTEGER001(6, 0) = 46
  46.     TINTEGER001(6, 1) = 6
  47.     TINTEGER001(7, 0) = 46
  48.     TINTEGER001(7, 1) = 9
  49.     TINTEGER001(8, 0) = 46
  50.     TINTEGER001(8, 1) = 12
  51.     TINTEGER001(9, 0) = 46
  52.     TINTEGER001(9, 1) = 15
  53.     TINTEGER001(10, 0) = 46
  54.     TINTEGER001(10, 1) = 18
  55.     TINTEGER001(11, 0) = 46
  56.     TINTEGER001(11, 1) = 21
  57.     Log "BULLETIN PPE: entered", 0
  58.     If (TokCount() == 0) Then
  59.         Print "@X02BULLETIN: .CFG path not specified, exiting..."
  60.         Log "BULLETIN: .CFG path not specified, exiting...", 0
  61.     Else
  62.         STRING001 = GetToken()
  63.         FOpen 1, PPEPath() + STRING001, 0, 0
  64.         If (Ferr(1)) Then
  65.             Print "@X02BULLETIN: could not open " + STRING001 + ", exiting..."
  66.             Log "BULLETIN: could not open " + STRING001 + ", exiting...", 0
  67.         Else
  68.             INTEGER004 = 0
  69.             FGet 1, TSTRING002(INTEGER004)
  70.             FGet 1, TSTRING003(INTEGER004)
  71.             :LABEL001
  72.             If (Ferr(1)) Goto LABEL002
  73.             Inc INTEGER004
  74.             FGet 1, TSTRING002(INTEGER004)
  75.             FGet 1, TSTRING003(INTEGER004)
  76.             Goto LABEL001
  77.             :LABEL002
  78.             If (Ferr(1)) Then
  79.                 Print "@X02BULLETIN: error reading BULLETIN.CFG, exiting..."
  80.                 Log "BULLETIN: error reading BULLETIN.CFG, exiting...", 0
  81.             Else
  82.                 :LABEL003
  83.                 Gosub LABEL011
  84.                 Gosub LABEL010
  85.                 Gosub LABEL007
  86.                 While (INTEGER003 <> 1) Do
  87.                     STRING001 = ""
  88.                     STRING001 = Inkey()
  89.                     If (Left(STRING001, 4) == "DOWN") Then
  90.                         Gosub LABEL008
  91.                         Inc INTEGER002
  92.                         If (INTEGER002 > INTEGER005) INTEGER002 = 0
  93.                         Gosub LABEL007
  94.                         Continue
  95.                     Endif
  96.                     If (Left(STRING001, 2) == "UP") Then
  97.                         Gosub LABEL008
  98.                         Dec INTEGER002
  99.                         If (INTEGER002 < 0) INTEGER002 = INTEGER005
  100.                         Gosub LABEL007
  101.                         Continue
  102.                     Endif
  103.                     If (Left(STRING001, 5) == "RIGHT") Then
  104.                         Gosub LABEL008
  105.                         If (INTEGER002 + 6 > INTEGER005) Then
  106.                             INTEGER002 = INTEGER002 + 6 - INTEGER005 - 1
  107.                             Goto LABEL004
  108.                         Endif
  109.                         INTEGER002 = INTEGER002 + 6
  110.                         :LABEL004
  111.                         Gosub LABEL007
  112.                         Continue
  113.                     Endif
  114.                     If (Left(STRING001, 4) == "LEFT") Then
  115.                         Gosub LABEL008
  116.                         If (INTEGER002 - 6 < 0) Then
  117.                             INTEGER002 = INTEGER005 + INTEGER002 - 6 + 1
  118.                             Goto LABEL005
  119.                         Endif
  120.                         INTEGER002 = INTEGER002 - 6
  121.                         :LABEL005
  122.                         Gosub LABEL007
  123.                         Continue
  124.                     Endif
  125.                     If (STRING001 == Chr(13)) Then
  126.                         Gosub LABEL009
  127.                         Goto LABEL003
  128.                         Continue
  129.                     Endif
  130.                     If ((STRING001 == "Q") || (STRING001 == "q")) Then
  131.                         INTEGER003 = 1
  132.                         Continue
  133.                     Endif
  134.                     If ((STRING001 == "H") || (STRING001 == "h")) Then
  135.                         Gosub LABEL012
  136.                         Goto LABEL003
  137.                     Endif
  138.                 EndWhile
  139.             Endif
  140.         Endif
  141.     Endif
  142.     :LABEL006
  143.     Color 15
  144.     Print "@CLS@"
  145.     FClose 1
  146.     Log "BULLETIN PPE: exited", 0
  147.     End
  148.     :LABEL007
  149.     STRING001 = ScrText(TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1), 32, 0)
  150.     AnsiPos TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1)
  151.     Color 32
  152.     STRING001 = RTrim(STRING001, " ")
  153.     If (STRING001 == "") Then
  154.         Print "QUIT"
  155.     Else
  156.         Print STRING001
  157.     Endif
  158.     AnsiPos TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1)
  159.     Return
  160.     :LABEL008
  161.     STRING001 = ScrText(TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1), 32, 0)
  162.     AnsiPos TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1)
  163.     Color 42
  164.     STRING001 = RTrim(STRING001, " ")
  165.     If (STRING001 == "QUIT") Then
  166.         Print "                                "
  167.     Else
  168.         Print STRING001
  169.     Endif
  170.     Return
  171.     :LABEL009
  172.     STRING001 = ScrText(TINTEGER001(INTEGER002, 0), TINTEGER001(INTEGER002, 1), 4, 0)
  173.     If (RTrim(STRING001, " ") == "QUIT") Then
  174.         DefColor
  175.         Goto LABEL006
  176.     Else
  177.         DefColor
  178.         Print "@CLS@@PON@"
  179.         DispFile TSTRING003(INTEGER002), 2 + 1 + 4
  180.         Print "@WAIT@"
  181.     Endif
  182.     Return
  183.     :LABEL010
  184.     Color 42
  185.     For INTEGER004 = 0 To INTEGER005
  186.         AnsiPos TINTEGER001(INTEGER004, 0), TINTEGER001(INTEGER004, 1)
  187.         Print TSTRING002(INTEGER004)
  188.     Next
  189.     Return
  190.     :LABEL011
  191.     PrintLn "@POFF@@CLS@@X07@X0A▐@X2A┌───────────────────────────────────────────────────────────────────────────@X20┐@X08▌"
  192.     PrintLn "@X0A▐@X2A│ @X2EBULLETIN.PPE ■ COPYRIGHT 1994 ■ ROBERT BROWER ■ @XAETHIS COPY IS UNREGISTERED @X20│@X08▌"
  193.     PrintLn "@X0A▐@X2A└@X20───────────────────────────────────────────────────────────────────────────┘@X08▌"
  194.     PrintLn "@X0A▐@X2A    (@X2E@X2A)MOVE (@X2E@X2A)MOVE (@X2E@X2A)MOVE (@X2E@X2A)MOVE (@X2EQ@X2A)UIT (@XAEH@X2A)ELP (@X2EENTER@X2A) = VIEW BULLETIN    @X08▌"
  195.     PrintLn "@X0A▐@X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐ @X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐@X08▌"
  196.     PrintLn "@X0A▐@X2A│@X2E01@X20│@X2A│                                @X20│ @X2A│@X2E07@X20│@X2A│                                @X20│@X08▌"
  197.     PrintLn "@X0A▐@X2A└@X20──┘@X2A└@X20────────────────────────────────┘ @X2A└@X20──┘@X2A└@X20────────────────────────────────┘@X08▌"
  198.     PrintLn "@X0A▐@X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐ @X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐@X08▌"
  199.     PrintLn "@X0A▐@X2A│@X2E02@X20│@X2A│                                @X20│ @X2A│@X2E08@X20│@X2A│                                @X20│@X08▌"
  200.     PrintLn "@X0A▐@X2A└@X20──┘@X2A└@X20────────────────────────────────┘ @X2A└@X20──┘@X2A└@X20────────────────────────────────┘@X08▌"
  201.     PrintLn "@X0A▐@X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐ @X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐@X08▌"
  202.     PrintLn "@X0A▐@X2A│@X2E03@X20│@X2A│                                @X20│ @X2A│@X2E09@X20│@X2A│                                @X20│@X08▌"
  203.     PrintLn "@X0A▐@X2A└@X20──┘@X2A└@X20────────────────────────────────┘ @X2A└@X20──┘@X2A└@X20────────────────────────────────┘@X08▌"
  204.     PrintLn "@X0A▐@X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐ @X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐@X08▌"
  205.     PrintLn "@X0A▐@X2A│@X2E04@X20│@X2A│                                @X20│ @X2A│@X2E10@X20│@X2A│                                @X20│@X08▌"
  206.     PrintLn "@X0A▐@X2A└@X20──┘@X2A└@X20────────────────────────────────┘ @X2A└@X20──┘@X2A└@X20────────────────────────────────┘@X08▌"
  207.     PrintLn "@X0A▐@X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐ @X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐@X08▌"
  208.     PrintLn "@X0A▐@X2A│@X2E05@X20│@X2A│                                @X20│ @X2A│@X2E11@X20│@X2A│                                @X20│@X08▌"
  209.     PrintLn "@X0A▐@X2A└@X20──┘@X2A└@X20────────────────────────────────┘ @X2A└@X20──┘@X2A└@X20────────────────────────────────┘@X08▌"
  210.     PrintLn "@X0A▐@X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐ @X2A┌──@X20┐@X2A┌────────────────────────────────@X20┐@X08▌"
  211.     PrintLn "@X0A▐@X2A│@X2E06@X20│@X2A│                                @X20│ @X2A│@X2E12@X20│@X2A│                                @X20│@X08▌"
  212.     PrintLn "@X0A▐@X2A└@X20──┘@X2A└@X20────────────────────────────────┘ @X2A└@X20──┘@X2A└@X20────────────────────────────────┘@X08▌"
  213.     Return
  214.     :LABEL012
  215.     DefColor
  216.     PrintLn "@POFF@@CLS@@X07@X0A▐@X2A┌───────────────────────────────────────────────────────────────────────────@X20┐@X08▌"
  217.     PrintLn "@X0A▐@X2A│@X2EBULLETIN.PPE ■ COPYRIGHT 1994 ■ ROBERT BROWER ■ TOTAL ACCESS (905) 568-5294@X20│@X08▌"
  218.     PrintLn "@X0A▐@X2A└@X20───────────────────────────────────────────────────────────────────────────┘@X08▌"
  219.     PrintLn "@X0A▐@X2A    (@X2E@X2A)MOVE (@X2E@X2A)MOVE (@X2E@X2A)MOVE (@X2E@X2A)MOVE (@X2EQ@X2A)UIT (@XAEH@X2A)ELP (@X2EENTER@X2A) = VIEW BULLETIN    @X08▌"
  220.     PrintLn "@X0A▐@X2A┌───────────────────────────────────────────────────────────────────────────@X20┐@X08▌"
  221.     PrintLn "@X0A▐@X2A│ USE YOUR @X2EUP@X2A, @X2EDOWN@X2A, @X2ELEFT @X2AOR @X2ERIGHT @X2ACURSOR KEYS TO MOVE THE HIGHLIGHTED      @X20│@X08▌"
  222.     PrintLn "@X0A▐@X2A│ SELECTION. PRESS ENTER TO SELECT THE BULLETIN FOR VIEWING. PRESS '@X2EH@X2A' FOR  @X20│@X08▌"
  223.     PrintLn "@X0A▐@X2A│ THIS HELP SCREEN AT ANY TIME. PRESS '@X2EQ@X2A' TO QUIT OR SELECT THE HIGHLIGHTED @X20│@X08▌"
  224.     PrintLn "@X0A▐@X2A│ '@X2EQUIT@X2A' SELECTION TO EXIT THIS PPE UTILITY AND RETURN TO THE BBS.          @X20│@X08▌"
  225.     PrintLn "@X0A▐@X2A│                                                                           @X20│@X08▌"
  226.     PrintLn "@X0A▐@X2A│                         @X2E■ QUICK REFERENCE GUIDE ■                         @X20│@X08▌"
  227.     PrintLn "@X0A▐@X2A│                  @X20┌──────────────────────────────────────@X2A┐                 @X20│@X08▌"
  228.     PrintLn "@X0A▐@X2A│                  @X20│ @X2A(@X2E@X2A) MOVE UP ONE SELECTION            │                 @X20│@X08▌"
  229.     PrintLn "@X0A▐@X2A│                  @X20│ @X2A(@X2E@X2A) MOVE DOWN ONE SELECTION          │                 @X20│@X08▌"
  230.     PrintLn "@X0A▐@X2A│                  @X20│ @X2A(@X2E@X2A) MOVE RIGHT ONE SELECTION         │                 @X20│@X08▌"
  231.     PrintLn "@X0A▐@X2A│                  @X20│ @X2A(@X2E@X2A) MOVE LEFT ONE SELECTION          │                 @X20│@X08▌"
  232.     PrintLn "@X0A▐@X2A│                  @X20│ @X2A(@X2EH@X2A) ACCESS THIS HELP SCREEN          │                 @X20│@X08▌"
  233.     PrintLn "@X0A▐@X2A│                  @X20│ @X2A(@X2EQ@X2A) QUIT AND RETURN TO BBS           │                 @X20│@X08▌"
  234.     PrintLn "@X0A▐@X2A│                  @X20│ @X2A(@X2EENTER@X2A) SELECT BULLETIN FOR READING  │                 @X20│@X08▌"
  235.     PrintLn "@X0A▐@X2A│                  @X20└@X2A──────────────────────────────────────┘                 @X20│@X08▌"
  236.     PrintLn "@X0A▐@X2A│                                                                           @X20│@X08▌"
  237.     PrintLn "@X0A▐@X2A└@X20───────────────────────────────────────────────────────────────────────────┘@X08▌"
  238.     Print "@WAIT@"
  239.     Return
  240.  
  241. ;------------------------------------------------------------------------------
  242. ;
  243. ; Usage report (before postprocessing)
  244. ;
  245. ; ■ Statements used :
  246. ;
  247. ;    1       End
  248. ;    4       Color 
  249. ;    38      Goto 
  250. ;    45      Let 
  251. ;    12      Print 
  252. ;    44      PrintLn 
  253. ;    20      If 
  254. ;    1       DispFile 
  255. ;    1       FOpen 
  256. ;    1       FClose 
  257. ;    4       FGet 
  258. ;    3       DefColor
  259. ;    5       Log 
  260. ;    13      Gosub 
  261. ;    6       Return
  262. ;    2       Inc 
  263. ;    1       Dec 
  264. ;    4       AnsiPos 
  265. ;
  266. ;
  267. ; ■ Functions used :
  268. ;
  269. ;    13      +
  270. ;    5       -
  271. ;    13      ==
  272. ;    1       <>
  273. ;    3       <
  274. ;    1       <=
  275. ;    2       >
  276. ;    2       >=
  277. ;    18      !
  278. ;    2       &&
  279. ;    3       ||
  280. ;    4       Left()
  281. ;    3       Ferr()
  282. ;    1       Chr()
  283. ;    3       RTrim()
  284. ;    1       Inkey()
  285. ;    1       PPEPath()
  286. ;    1       GetToken()
  287. ;    1       TokCount()
  288. ;    3       ScrText()
  289. ;
  290. ;------------------------------------------------------------------------------
  291. ;
  292. ; Analysis flags : No flag
  293. ;
  294. ;------------------------------------------------------------------------------
  295. ;
  296. ; Postprocessing report
  297. ;
  298. ;    1       For/Next
  299. ;    1       While/EndWhile
  300. ;    15      If/Then or If/Then/Else
  301. ;    0       Select Case
  302. ;
  303. ;------------------------------------------------------------------------------
  304. ;                 AEGiS Corp - Break the routines, code against the machines!
  305. ;------------------------------------------------------------------------------
  306.